import pandas as pd
import matplotlib.pyplot as plt
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_classif
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family'] = ['sans-serif']

# 读取数据集
data = pd.read_csv('../数据集/原数据.csv')

###########EDA################
# 查看数据集的前几行
print(data.head())
# 查看数据集的基本信息，包括每列的数据类型和缺失值情况
print(data.info())
# 描述性统计信息
print(data.describe())
#发现“出院诊断”特征有缺失值，用0填补
data=data.fillna(0)

###########利用方差分析（ANOVA）来提取特征################


# 将特征列和目标列分开
X = data.drop('RES', axis=1)  # 特征列
y = data['RES']  # 目标列

# 使用方差分析（ANOVA）选择最相关的 k 个特征
k = 20 # 假设选择最相关的 10 个特征
selector = SelectKBest(score_func=f_classif, k=k)
X_new = selector.fit_transform(X, y)

# 获取被选择的特征的索引
selected_features_idx = selector.get_support(indices=True)

# 根据索引获取被选择的特征名
selected_features = X.columns[selected_features_idx]

# 输出选择的特征名
print("Selected Features:")
print(selected_features)







